package com.yangmao.example.consumer;

import com.yangmao.example.common.model.User;
import com.yangmao.example.common.service.UserService;
import com.yangmao.yangrpc.proxy.ServiceProxyFactory;

/**
 * 简易消费者
 */
public class EasyConsumerExample {
    public static void main(String[] args) {
        //  获取服务的 代理对象
        UserService userService = ServiceProxyFactory.getProxy(UserService.class);
        User user = new User();
        user.setName("yangmao");

        // 实际上是代理对象调用了invoke方法
        // 当用户调用某个接口的方法时，会改为调用 invoke 方法。在 invoke 方法中，
        // 我们可以获取到要调用的方法信息、传入的参数列表等，
        // 这不就是我们服务提供者需要的参数么？用这些参数来构造请求对象就可以完成调用了。
        User newUser = userService.getUser(user);
        if (newUser != null){
            System.out.println(newUser.getName());
        }else
        {
            System.out.println("user == null");
        }
    }
}
